package com.thx.app.remote;

import mixedserver.protocol.RPCException;
import com.thx.app.remote.model.RPCResponse;
import com.thx.app.remote.model.UserInfor_;

public interface UserLoginInter {
	public final static String SK_USERID = "sk_userid";
	public final static String SK_USERNAME = "sk_username";
	public final static String SK_REALNAME = "sk_realname";
	public final static String SK_MOBILE = "sk_mobile";
	public final static String SK_EMAIL = "sk_email";
	public final static String SK_USERLOGO = "sk_userlogo";
	public final static String SK_DEPID = "sk_depid";
	public final static String SK_DEPNAME = "sk_depname";
	public final static String SK_PRIVILEGE = "sk_privilege";
	public final static String SK_ROLES = "sk_roles";
	
	/**
	 * 登录接口
	 * @param userName 用户名
	 * @param pwd 密码
	 * @param validator 验证码
	 */
	public RPCResponse login(String userName,String pwd,String validator) throws RPCException;


	/**
	 * 用户注册用户名查询        [适用于登录用户校验]
	 * 到服务器端判断用户名是否已经注册
	 * parameter	用户名
	 */
	public boolean loginUserSearch(String userName) throws RPCException;
	
	/**
	 * 用户信息查询        [适用于已登录用户 查询其它用户信息]
	 * 条件：校验当前登录人员是否登录 
	 * parameter	用户名
	 */
	public RPCResponse queryUserSearch(String userName) throws RPCException;
	
	/**
	 * 获取 验证码 接口
	 */
	public String getCaptcha() throws RPCException;
	
	/**
	 * 发送 短信验证码
	 * @param phoneNumber 用户手机号码
	 * @param captcha 防恶意刷新 验证码
	 * @return
	 */
	public boolean sendSmsVerifyCode(String phoneNumber,String captcha) throws RPCException;
	
	/**
	 * 用户注册接口
	 * 服务器保存注册用户信息，返回注册是否成功
	 * @param user 注册用户信息
	 * @param captcha 防恶意刷新 验证码 或 短信验证码
	 * @return 注册成功 true
	 */
	public boolean saveUserInfor(UserInfor_ user,String captcha) throws RPCException ;
	
	/**
	 * 用户修改密码
	 * @param userName 用户帐号 或 用户ID
	 * @param oldPwd 旧密码
	 * @param newPwd 新密码
	 * @return 修改成功 true
	 */
	public boolean updatePwd(String userName, String oldPwd, String newPwd) throws RPCException;

	/**
	 * 注销
	 */
	public void logOut() throws RPCException;
	
	/**
	 * 得到当前登录用户信息
	 */
	public RPCResponse getCurUserInfor() throws RPCException;
	
	/**
	 * 上传用户头像信息
	 * picStream 图片流
	 */
	public String sendUserImage(byte[] picStream) throws RPCException;
	
    /**
     * 在用户登录成功后更新设备号
     * @param username
     * @param deviceId
     * @param imsi
     * @throws RPCException
     */
	public boolean updateDeviceId(String userName, String deviceId, String imsi) throws RPCException;
}
